package com.umariana.ClinicaVeterinaria.InterfazGrafica;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.JLabel;
import javax.swing.JTextField;

import com.umariana.ClinicaVeterinaria.mundo.Propietario;
import java.awt.event.KeyEvent;

public class DialogoListaPropietarios extends JDialog implements ActionListener , KeyListener{

	/**
	 * serial
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * comando para buscar un propietario
	 */
	private static final String BUSCAR ="BUSCAR";
	/**
	 * panel de con	tenido del dialogo
	 */
	private final JPanel contentPanel = new JPanel();
	/**
	 * tabla de propietarios
	 */
	private JTable tablaDeListaPropietarios;
	/**
	 * campo de texto de la identifiacion
	 */
	private JTextField txtIdentifiacion;
	/**
	 * relacion con el frame principal
	 */
	private InterfazClinica principal;



	/**
	 * Create the dialog.
	 */
	public DialogoListaPropietarios(InterfazClinica ventana ) {
		
		super(ventana,true);
		principal = ventana;
		
		setTitle("Lista de propietarios");
		setBounds(100, 100, 640, 480);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);
		
		JScrollPane panelScrollListaPropietrios = new JScrollPane();
		panelScrollListaPropietrios.setBounds(10, 36, 604, 395);
		contentPanel.add(panelScrollListaPropietrios);
		{
			tablaDeListaPropietarios = new JTable();
			tablaDeListaPropietarios.setModel(new DefaultTableModel(
				new Object[][] {
				},
				new String[] {
				}
			));
			panelScrollListaPropietrios.setViewportView(tablaDeListaPropietarios);
		}
		{
			JLabel lblIdentificacion = new JLabel("Identificacion:");
			lblIdentificacion.setBounds(10, 11, 102, 14);
			contentPanel.add(lblIdentificacion);
		}
		{
			txtIdentifiacion = new JTextField();
			
			txtIdentifiacion.addKeyListener(this);
			txtIdentifiacion.setBounds(131, 8, 180, 20);
			contentPanel.add(txtIdentifiacion);
			txtIdentifiacion.setColumns(10);
		}
		{
			JButton btnBuscar = new JButton("Buscar");
			btnBuscar.setActionCommand(BUSCAR);
			btnBuscar.addActionListener(this);
			btnBuscar.setBounds(322, 7, 114, 23);
			contentPanel.add(btnBuscar);
		}
		
		
		actualizarDatosTablaPropietarios();
	}

	/**
	 * Actualiza los datos del propietario
	 */
	public void actualizarDatosTablaPropietarios()
	{
		ArrayList<Propietario> listaPropietario = principal.darListaDePropietarios();
		String[] encabesados = {"Nombres" , "Apellidos" ,"Cedula","Direccion","Telefono","Mascotas"};
		DefaultTableModel modeloTabla = new DefaultTableModel(encabesados, 0);
		for (int i = 0; i < listaPropietario.size(); i++) 
		{
			Propietario miPropietario = listaPropietario.get(i);
			String[] contenido = {miPropietario.getNombres(),miPropietario.getApellidos(),miPropietario.getIdentificacion(),miPropietario.getDireccion(),miPropietario.getTelefono(),miPropietario.getMascotas().size()+""};
			modeloTabla.addRow(contenido);
		}
		
		tablaDeListaPropietarios.setModel(modeloTabla);
		
		
	}

	/**
	 * busca el propietario y lo selecciona
	 */
	public void buscarPropietario()
	{
		String ele = txtIdentifiacion.getText();
		 
	    for (int i = 0; i < tablaDeListaPropietarios.getRowCount(); i++) {
	    		System.out.print(tablaDeListaPropietarios.getValueAt(i, 2));
	           if (tablaDeListaPropietarios.getValueAt(i, 2).equals(ele)) {                                           
	        	   tablaDeListaPropietarios.changeSelection(i, 2, false, false);
	                  break;
	           }
	    }
	}

	/**
	 * evento action perfomed del boton buscar
	 */
	public void actionPerformed(ActionEvent arg0) 
	{
	
		String comando = arg0.getActionCommand();
		
		if(comando.equalsIgnoreCase(BUSCAR))
		{
			buscarPropietario();
		}
		
	}


	/**
	 * evento key press del campo de texto identificacion 
	 * este evento permite realizar la accion cuando se preciona la tecla ENTER
	 */
	@SuppressWarnings("static-access")
	public void keyPressed(KeyEvent arg0) 
	{
		if(arg0.getComponent().equals(txtIdentifiacion))
		{
			if(arg0.getKeyCode()==arg0.VK_ENTER)
			{
				buscarPropietario();
			}
		}
		
	}


	@Override
	public void keyReleased(KeyEvent arg0) {
		
		
	}


	/**
	 * evento key tiped campo de texto identificacion
	 * este evento permite que solo se escrivan numeros
	 */
	public void keyTyped(KeyEvent arg0) {
		
		if(arg0.getComponent().equals(txtIdentifiacion))
		{
			char car = arg0.getKeyChar();
			if(car < '0' || car >'9')arg0.consume();
		}
	}
	
	
	
	
	
	
	
	
}
